/**
 * 3
 *  
 * @Author : Ruoyu Wang
 * @DateTime : 24-9-22 上午9:43
 */

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct Node {
    long long l;
    long long r;
    long long t;
    long long d;

    Node() {}

    Node(long long l, long long r, long long t, long long d) : l(l), r(r), t(t), d(d) {}
};

bool cmp(Node a, Node b) {
    return a.l == b.l ? a.r < b.r : a.l < b.l;
}

int main() {
    int n;
    cin >> n;
    vector<Node> nodes(n);
    for (int i = 0; i < n; ++i) {
        cin >> nodes[i].l >> nodes[i].r >> nodes[i].t >> nodes[i].d;
    }

    sort(nodes.begin(), nodes.end(), cmp);

    long long s = 0;
    long long tmin = 0x3f3f3f3f3f3f3f3f;
    long long d = 0;
    int i = 0;
    for (int j = 0; j < n; ++j) {
        if (s >= nodes[j].l && s <= nodes[j].r) {
            if (tmin > nodes[j].t) {
                tmin = nodes[j].t;
                d = nodes[j].d;
            } else if (tmin == nodes[j].t) {
                d += nodes[j].d;
            }
        } else {
            if (j > i) {
                s += d;
                i = j;
                j--;
            } else {
                i = j + 1;
            }
            tmin = 0x3f3f3f3f3f3f3f3f;
            d = 0;
        }
    }
    if (i < nodes.size()) {
        s += d;
    }
    cout << s;
    return 0;
}